El rendimiento en el contexto financiero se refiere a la ganancia o pérdida generada por una inversión a lo largo del tiempo. Es una medida fundamental para evaluar la eficacia de una inversión y es esencial tanto para inversionistas individuales como institucionales. El rendimiento puede expresarse en términos absolutos o relativos y se puede ajustar al riesgo para proporcionar una comparación más precisa entre diferentes inversiones.
El siguiente texto es tomado de forma literal del texto guía
El rendimiento de un activo financiero se define como el cambio de valor que se tiene en un periodo con respecto a otro, generalmente el periodo anterior.
\[ r_i = \frac{\text{Valor final} - \text{Valor inicial}}{\text{Valor inicial}} \]
O de otra forma, el rendimiento de un activo financiero \(i\) se puede definir como:
\[ r_i = \frac{P_t - P_{t-1}}{P_{t-1}} \]
Donde: \(P_t\) es el precio del activo en el periodo \(t\). \(P_{t-1}\) es el precio del activo en el periodo \(t-1\). Ahora bien, si se considera que el activo financiero es una acción que paga un dividendo \(D_t\) en el periodo \(t\), el rendimiento puede definirse como:
\[ r_i = \frac{P_t - P_{t-1} + D_t}{P_{t-1}} \]
El rendimiento de los activos financieros se suele definir también como:
\[ r_i = \ln \left( \frac{P_t}{P_{t-1}} \right) \]
También conocido como log-rendimiento. Algunas de las razones para definir el rendimiento de esta manera son:
Rendimiento Absoluto: Se refiere a la ganancia o pérdida total generada por una inversión, sin tener en cuenta el período de tiempo durante el cual se ha mantenido la inversión. Se calcula como la diferencia entre el valor final de la inversión y su valor inicial.
Rendimiento Relativo: Compara el rendimiento de una inversión con el de un punto de referencia o índice de mercado. Permite evaluar cómo se desempeña una inversión en comparación con el mercado en general o con inversiones similares.
Rendimiento Ajustado al Riesgo: Este enfoque ajusta el rendimiento de una inversión por el nivel de riesgo asumido para generar ese rendimiento. Herramientas como el Ratio de Sharpe y el Ratio de Sortino son ejemplos comunes que permiten comparar inversiones que pueden tener diferentes niveles de volatilidad o riesgo.
El rendimiento se puede calcular de varias maneras, dependiendo del tipo de inversión y la información disponible. Dos métodos comunes son:
Rendimiento porcentual: Se calcula como la diferencia entre el valor final y el valor inicial de la inversión, dividida por el valor inicial, todo esto multiplicado por 100 para obtener un porcentaje.
Tasa de Retorno Anual Compuesto (CAGR, por sus siglas en inglés): Es útil para evaluar el rendimiento de una inversión a lo largo de múltiples periodos. Se calcula utilizando la fórmula de interés compuesto para suavizar el rendimiento anualizado a lo largo del período de la inversión.
Permite a los inversores:
Además, entender el rendimiento y cómo se calcula ayuda a los inversores a establecer expectativas realistas sobre las ganancias potenciales de sus inversiones y a gestionar mejor el riesgo asociado.
El rendimiento esperado de una inversión es una medida del beneficio o ganancia que se espera obtener de una inversión en el futuro. Se basa en las probabilidades de varios resultados posibles, considerando tanto los rendimientos positivos como los negativos. Es una herramienta esencial en la teoría de carteras y en la toma de decisiones financieras, ya que permite a los inversores estimar el valor de una inversión teniendo en cuenta sus posibles rendimientos y los riesgos asociados.
Para un activo individual, el rendimiento esperado se puede calcular usando la siguiente fórmula:
\[ E(R) = \sum (P_i \times R_i) \]
Donde: - \(E(R)\) es el rendimiento esperado del activo. - \(P_i\) es la probabilidad de cada retorno \(i\). - \(R_i\) es el retorno esperado para cada estado \(i\).
Esta fórmula implica sumar los productos de las probabilidades de diferentes resultados posibles y los respectivos rendimientos. Es una manera de ponderar cada posible retorno por su probabilidad de ocurrencia.
Supongamos que un activo tiene tres posibles rendimientos en el próximo año: 10%, 6%, y -4% (pérdida). Si las probabilidades de estos rendimientos son 20%, 50%, y 30% respectivamente, el rendimiento esperado se calcula así:
\[ E(R) = (0.2 \times 10\%) + (0.5 \times 6\%) + (0.3 \times (-4\%)) \]
Vamos a calcularlo para ver el resultado.
El rendimiento esperado del activo, basado en los cálculos, es del 3.8%. Esto significa que, dadas las probabilidades y los rendimientos posibles, se espera en promedio un retorno del 3.8% para el próximo año.
Seleccionar Activos: Comparar el rendimiento esperado de diferentes inversiones puede ayudar a seleccionar aquellos activos que se alinean mejor con los objetivos de inversión y la tolerancia al riesgo del inversor.
Diversificación de Cartera: Al entender el rendimiento esperado de distintos activos, los inversores pueden construir una cartera diversificada que optimice el equilibrio entre riesgo y retorno.
Planificación Financiera: El rendimiento esperado también es crucial para la planificación financiera a largo plazo, incluyendo la jubilación y la acumulación de patrimonio.
El rendimiento esperado es solo una estimación basada en probabilidades. Los mercados financieros son inherentemente inciertos, y los eventos futuros pueden divergir significativamente de las expectativas. Además, el cálculo del rendimiento esperado se basa en la precisión de las probabilidades asignadas a los diferentes resultados, que pueden no ser fáciles de estimar con certeza.
Rendimiento Libre de Riesgo (\(r_f\)): Es la tasa de retorno que se espera de una inversión considerada sin riesgo. Esto significa que es el rendimiento que un inversor espera recibir de una inversión segura, sin preocuparse por la pérdida del principal. A menudo, se utiliza el rendimiento de los bonos del gobierno a corto plazo como proxy para el rendimiento libre de riesgo, ya que se asume que el gobierno no incumplirá sus obligaciones.
Prima por Riesgo (\(E(r_s)\)): Es el exceso de rendimiento que un inversor espera recibir por asumir un mayor riesgo. La prima por riesgo compensa a los inversores por el riesgo adicional de invertir en activos más riesgosos en comparación con los activos libres de riesgo.
La fórmula completa sería:
\[ E(r) = r_f + E(r_s) \]
Donde: - \(E(r)\) es el rendimiento total esperado de la inversión. - \(r_f\) es el rendimiento libre de riesgo. - \(E(r_s)\) es la prima de riesgo esperada.
Esta ecuación es un principio básico del modelo de valoración de activos de capital (CAPM), que es un modelo utilizado para determinar el rendimiento esperado de una inversión en función de su riesgo no diversificable, o riesgo de mercado. En el contexto del CAPM, la prima por riesgo a menudo se calcula como el producto del beta del activo (que mide la sensibilidad del rendimiento del activo a los movimientos del mercado) y la prima de riesgo del mercado (que es la diferencia entre el rendimiento esperado del mercado y el rendimiento libre de riesgo).
La gráfica representa la relación entre el rendimiento esperado de una inversión y el nivel de riesgo asociado, según la Teoría de Precios de Activos de Capital (CAPM por sus siglas en inglés). Esta teoría es un modelo que describe la relación entre el riesgo sistemático y el rendimiento esperado de los activos, especialmente las acciones.
La línea recta en la gráfica es conocida como la Línea de Mercado de Capitales (CML por sus siglas en inglés). Veamos los componentes de la gráfica:
Eje Y (Rendimiento): Representa el rendimiento esperado de una inversión. La altura en el eje vertical indica el nivel de rendimiento. Cuanto más alto es el punto en el eje Y, mayor es el rendimiento esperado.
Eje X (Riesgo): Representa el nivel de riesgo de una inversión. Este riesgo se mide comúnmente por la desviación estándar de los rendimientos pasados, que es una medida de la volatilidad. Cuanto más a la derecha se encuentra el punto en el eje X, mayor es el riesgo asociado.
Tasa Libre de Riesgo: Es el punto en el eje Y donde el eje X es cero. Representa el rendimiento que se espera de una inversión sin riesgo, como los bonos del gobierno a corto plazo. Es el rendimiento mínimo que los inversores esperarían, ya que no hay riesgo involucrado.
Rendimiento Con Riesgo: Es el punto en la gráfica donde se proyecta un nivel de riesgo específico (en el eje X) para obtener el rendimiento esperado correspondiente (en el eje Y). Este rendimiento es superior a la tasa libre de riesgo debido al riesgo adicional asumido.
Los diferentes tipos de activos financieros se trazan en el gráfico según su perfil de riesgo y rendimiento:
Bonos gubernamentales: Generalmente tienen un bajo riesgo y un bajo rendimiento esperado. Se consideran inversiones seguras porque están respaldadas por el gobierno, pero por lo general no ofrecen rendimientos tan altos.
Papeles comerciales: Son instrumentos de deuda a corto plazo emitidos por empresas y suelen tener un poco más de riesgo y un rendimiento esperado ligeramente mayor que los bonos gubernamentales.
Bonos corporativos: Emitidos por empresas, tienen un riesgo mayor que los papeles comerciales y los bonos gubernamentales, ya que dependen de la salud financiera de la corporación emisora. Como tal, ofrecen un rendimiento esperado más alto para compensar el riesgo adicional.
Acciones preferenciales: Son una forma de capital que tiene prioridad sobre las acciones comunes en términos de pagos de dividendos. A menudo, tienen menos riesgo que las acciones comunes pero más que los bonos corporativos, y su rendimiento esperado está en algún lugar intermedio.
Acciones comunes: Representan una participación de propiedad en una empresa y pueden ofrecer altos rendimientos si la empresa lo hace bien, pero también vienen con un riesgo significativo, incluida la posibilidad de perder toda la inversión si la empresa falla.
Derivados: Son instrumentos financieros cuyo valor se deriva de otros activos subyacentes. Pueden ser muy complejos y conllevan un riesgo alto, pero también ofrecen la posibilidad de altos rendimientos. Incluyen opciones, futuros y swaps, entre otros.
#install.packages("quantmod")
library(quantmod)
end_date <- Sys.Date()
start_date <- end_date - 730
# Download stock data (replace SYMBOL with the correct stock symbol)
#stock_data <- getSymbols("SYMBOL",src = "yahoo", from = "YYYY-MM-DD",to = Sys.Date(),auto.assign = FALSE)
stock_data <- getSymbols("EC", src = "yahoo", from = start_date, to = end_date, auto.assign = FALSE)
# View the first few rows of the data
DT::datatable(stock_data)
## Jarque-Bera test
## SignificanceResult(statistic=41.97576838656028, pvalue=7.674988051469944e-10)
## One sample Kolmogorov-Smirnov test against a normal distribution with the same mean and standard deviation as the data
## KstestResult(statistic=0.06578906515317645, pvalue=0.22722992494475092, statistic_location=-0.008903467666354265, statistic_sign=-1)
Las propiedades empíricas de los rendimientos financieros, también conocidas como “estilizadas”, son observaciones regulares en series temporales de rendimientos de activos financieros que se mantienen a través de diferentes mercados y periodos de tiempo. Las más destacadas incluyen:
No normalidad de los rendimientos: A menudo, los rendimientos no siguen una distribución normal. Esto se refleja en la presencia de colas pesadas (mayor probabilidad de observar eventos extremos de lo que predice la distribución normal) y asimetría (los rendimientos pueden inclinarse hacia la derecha o la izquierda en lugar de ser simétricos).
Agrupamiento de volatilidad (Volatility clustering): Los rendimientos tienden a exhibir periodos de alta volatilidad seguidos por periodos de baja volatilidad. Este fenómeno indica que los rendimientos grandes (ya sean positivos o negativos) tienden a ser seguidos por rendimientos grandes de cualquier signo, y rendimientos pequeños tienden a seguir a rendimientos pequeños.
Efecto de apalancamiento (Leverage effect): Se ha observado que, en muchos casos, la volatilidad de los rendimientos financieros tiende a aumentar cuando los precios bajan, lo que sugiere una correlación negativa entre rendimientos y volatilidad. Este efecto se llama así porque un descenso en los precios de los activos aumenta el apalancamiento financiero si el endeudamiento es constante.
Ausencia de autocorrelaciones significativas en rendimientos: Los rendimientos diarios o semanales de los activos financieros suelen mostrar una autocorrelación cercana a cero, lo que indica que los mercados son bastante eficientes, al menos en formas débiles, lo que significa que es difícil predecir los rendimientos futuros basándose únicamente en la información pasada de los rendimientos.
Autocorrelación en magnitudes de rendimientos: Aunque los rendimientos pueden no estar autocorrelacionados, las magnitudes de los rendimientos (por ejemplo, la volatilidad) sí lo están. Esto es consistente con el agrupamiento de volatilidad mencionado anteriormente.
Efecto día de la semana: Se ha documentado que los rendimientos pueden variar según el día de la semana, con lunes (efecto lunes) a menudo mostrando rendimientos promedio más bajos en comparación con otros días.
Efecto de enero: Históricamente, en muchos mercados, los rendimientos en enero han sido más altos en promedio que en otros meses, un patrón particularmente pronunciado en acciones de pequeña capitalización.
La volatilidad es una medida estadística que representa la magnitud de las fluctuaciones en el precio de un activo financiero (como acciones, bonos, commodities, etc.) o de un mercado en su conjunto, durante un periodo de tiempo determinado. Es un indicador clave de la incertidumbre o el riesgo asociado a la inversión en ese activo o mercado. La volatilidad se utiliza frecuentemente para cuantificar el riesgo de una inversión y es un componente esencial en varios modelos y estrategias de gestión de riesgos financieros.
Hay varias formas de medir la volatilidad, pero las más comunes son:
La desviación estándar de los rendimientos de un activo es la medida más directa y común de volatilidad. Representa la dispersión promedio de los rendimientos respecto a su media. Una desviación estándar alta indica una mayor volatilidad, es decir, mayor incertidumbre en los rendimientos del activo.
Aunque menos común para medir la volatilidad, el IQR, que es la diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1), puede ofrecer una idea de la dispersión de los rendimientos.
La volatilidad histórica, también conocida como volatilidad estadística, es una medida que cuantifica la dispersión de los rendimientos de un activo financiero (como acciones, bonos, materias primas) o índice de mercado durante un período de tiempo pasado. Esta medida se basa en los rendimientos pasados y proporciona una idea de cuánto ha fluctuado el precio del activo en el pasado, lo cual es útil para estimar el riesgo asociado con la inversión en ese activo.
Selección del periodo de tiempo: El primer paso es definir el período sobre el cual se calculará la volatilidad, por ejemplo, diario, semanal, mensual, etc. El período seleccionado dependerá del análisis que se desee realizar.
Cálculo de rendimientos: Se calculan los rendimientos del activo para el período seleccionado. Los rendimientos pueden ser logarítmicos o simples. El rendimiento logarítmico se calcula como el logaritmo natural de la razón entre el precio de cierre del día actual y el precio de cierre del día anterior. El rendimiento simple es simplemente la variación porcentual entre estos precios.
Desviación estándar de los rendimientos: La volatilidad histórica se calcula como la desviación estándar de los rendimientos del activo para el período seleccionado. La desviación estándar es una medida estadística que indica la dispersión de un conjunto de datos respecto a su media. En este caso, muestra cuánto se desvían los rendimientos del activo de su media en el período considerado.
La fórmula para calcular la desviación estándar (\(\sigma\)) de los rendimientos (\(R\)) y, por tanto, la volatilidad histórica es:
\[ \sigma = \left(\frac{1}{N-1} \sum_{i=1}^{N} (R_i - \bar{R})^2\right)^{1/2}\\ \text{Volatilidad} = \sigma\cdot \sqrt{T} \]
donde:
\(N\) es el número total de rendimientos en el período,
\(R_i\) es el rendimiento en el período \(i\),
\(\bar{R}\) es el rendimiento medio en el período.
\(T\) es la longitud en días del periodo de interes.
Mayor volatilidad: Indica que el precio del activo ha experimentado cambios significativos en el período analizado. Una alta volatilidad histórica sugiere un mayor riesgo, ya que el activo ha mostrado fluctuaciones de precio más pronunciadas, lo que puede continuar en el futuro.
Menor volatilidad: Significa que el precio del activo ha sido relativamente estable, con cambios de precio menos drásticos. Una baja volatilidad histórica sugiere un menor riesgo, indicando que el activo ha sido más predecible en términos de sus fluctuaciones de precio.
La volatilidad histórica anualizada de la acción considerada en esta base de datos es aproximadamente \(27.4\%\). Esto significa que, basado en los rendimientos diarios pasados, se estima que el precio de la acción tiene una desviación estándar de sus rendimientos de alrededor del 27.4% en un año. Este valor proporciona una medida de la incertidumbre o el riesgo asociado con la inversión en esta acción.
# Calcular la volatilidad histórica como la desviación típica de los rendimientos diarios.
# Multiplicar por sqrt(252) para anualizar la volatilidad (suponiendo 252 días de negociación en un año)
historical_volatility = data['Rendimientos'].std() * (252 ** 0.5)
historical_volatility
## 0.27417407173251324
Representa las expectativas del mercado sobre la volatilidad futura de un activo subyacente. A diferencia de la volatilidad histórica, que se calcula a partir de los cambios pasados en el precio de un activo, la volatilidad implícita se deriva del precio actual de las opciones en el mercado. Esencialmente, refleja la opinión consensuada de los inversores sobre cuánto se espera que fluctúe el activo en el futuro, hasta la fecha de vencimiento de la opción.
La volatilidad implícita no se puede observar directamente ni calcular a partir de los movimientos históricos de precios del activo subyacente. En cambio, se calcula utilizando modelos de valoración de opciones, siendo el modelo Black-Scholes el más conocido y utilizado. Este modelo proporciona una fórmula para estimar el precio de una opción europea basada en ciertos parámetros, incluyendo el precio del activo subyacente, el precio de ejercicio de la opción, la tasa de interés libre de riesgo, el tiempo hasta el vencimiento de la opción, y la volatilidad del activo subyacente.
Dado que todos los otros parámetros en el modelo pueden ser observados directamente en el mercado, la volatilidad implícita es el único parámetro desconocido y se resuelve de manera iterativa. Esto significa que se ajusta la volatilidad en el modelo hasta que el precio teórico de la opción según el modelo coincide con el precio de mercado de la opción. Existen diversos métodos numéricos para este ajuste, como el método de Newton-Raphson o el método de búsqueda binaria.
La fórmula para hallar la volatilidad implícita no es directa, como se mencionó anteriormente, porque es el parámetro desconocido en la ecuación de precios de opciones que se resuelve de manera iterativa. El modelo de Black-Scholes es uno de los más utilizados para valorar opciones europeas, y la volatilidad implícita se deriva ajustando la volatilidad hasta que el precio teórico de la opción según el modelo coincide con el precio de mercado de la opción.
La fórmula del modelo Black-Scholes para una opción de compra (call) es:
\[ C = S_0 N(d_1) - X e^{-rT} N(d_2) \]
donde:
\(C\) es el precio de la opción de compra.
\(S_0\) es el precio actual del activo subyacente.
\(X\) es el precio de ejercicio de la opción.
\(r\) es la tasa de interés libre de riesgo anual.
\(T\) es el tiempo hasta el vencimiento de la opción, expresado en años.
\(N(\cdot)\) es la función de distribución acumulativa de la distribución normal estándar.
\(d_1 = \frac{\ln(\frac{S_0}{X}) + (r + \frac{\sigma^2}{2})T}{\sigma\sqrt{T}}\)
\(d_2 = d_1 - \sigma\sqrt{T}\)
\(\sigma\) es la volatilidad del activo subyacente, la cual estamos tratando de resolver para obtener la volatilidad implícita.
Para calcular la volatilidad implícita en Python, se puede utilizar
la biblioteca scipy que incluye métodos de optimización
para resolver problemas de este tipo. Un enfoque común es utilizar el
método de Newton-Raphson o un método de búsqueda binaria para iterar
sobre el valor de \(\sigma\) hasta que
el precio calculado de la opción se acerque suficientemente al precio de
mercado de la opción.
A continuación, se muestra cómo implementar un cálculo básico de la volatilidad implícita utilizando el método de búsqueda binaria en Python:
from scipy.stats import norm
from math import log, sqrt, exp
from scipy.optimize import brentq
def black_scholes_call(S, X, T, r, sigma):
d1 = (log(S / X) + (r + sigma**2 / 2) * T) / (sigma * sqrt(T))
d2 = d1 - sigma * sqrt(T)
return S * norm.cdf(d1) - X * exp(-r * T) * norm.cdf(d2)
def implied_volatility(S, X, T, r, C_market):
# Función objetivo: diferencia entre el precio teórico y el de mercado
def objective_function(sigma):
return black_scholes_call(S, X, T, r, sigma) - C_market
# Estimación inicial de sigma
initial_guess = 0.1
# Resolución usando Brent's method
return brentq(objective_function, 1e-6, 1, xtol=1e-6)
# Ejemplo de uso
S = 100 # Precio actual del activo
X = 100 # Precio de ejercicio
T = 1 # Tiempo hasta el vencimiento en años
r = 0.05 # Tasa de interés libre de riesgo
C_market = 10 # Precio de mercado de la opción de compra
vol_imp = implied_volatility(S, X, T, r, C_market)
print(f'La volatilidad implícita es: {vol_imp:.4f}')
Este script define primero una función para el precio de una opción
de compra según el modelo Black-Scholes y luego una función para
calcular la volatilidad implícita dado un precio de mercado para la
opción. Utiliza brentq de scipy.optimize, que
es un método de búsqueda de raíces que encuentra la volatilidad que hace
que el precio teórico de la opción sea igual al precio de mercado. Es
importante destacar que este es un ejemplo básico y que en la práctica,
la volatilidad implícita debe ser calculada considerando otros factores
y ajustes, especialmente para opciones sobre activos con pagos de
dividendos o para opciones americanas, que permiten el ejercicio antes
del vencimiento.
Expectativa del mercado: La volatilidad implícita es una medida de las expectativas del mercado sobre la magnitud de los movimientos futuros del precio del activo subyacente. Una volatilidad implícita alta indica que el mercado espera que el activo sea más volátil en el futuro, lo cual puede ser el resultado de eventos anticipados como lanzamientos de productos, decisiones de política monetaria, o cualquier otro evento que pueda tener un impacto significativo en el precio del activo.
Precios de opciones: La volatilidad implícita influye directamente en los precios de las opciones. A mayor volatilidad implícita, mayor será el precio de las opciones, tanto de compra (call) como de venta (put). Esto se debe a que una mayor volatilidad aumenta la probabilidad de que la opción termine “in the money” (con ganancias).
“Sonrisa” de volatilidad: Al observar la volatilidad implícita para opciones con el mismo activo subyacente pero diferentes precios de ejercicio y vencimientos, a menudo se encuentra que no es constante. Este fenómeno se conoce como la “sonrisa” de volatilidad, donde las opciones “in the money” y “out of the money” tienden a tener una volatilidad implícita mayor que las opciones “at the money”. Esto refleja las expectativas asimétricas de los inversores sobre los movimientos futuros del activo.
Indicador de sentimiento: La volatilidad implícita también se interpreta como un indicador del sentimiento del mercado. Niveles elevados pueden indicar incertidumbre o miedo entre los inversores, mientras que niveles bajos pueden sugerir complacencia o confianza en la dirección del mercado.
El suavizamiento exponencial es una técnica utilizada en la gestión de la volatilidad en el análisis de series temporales, especialmente relevante en el campo de las finanzas para modelar y predecir la volatilidad de los precios de los activos. Esta técnica se basa en la idea de que los datos más recientes son más relevantes para hacer predicciones que los datos más antiguos, pero sin ignorar completamente estos últimos. Así, se asigna un mayor peso a las observaciones más recientes, con los pesos disminuyendo exponencialmente para las observaciones más antiguas.
Una de las aplicaciones más conocidas del suavizamiento exponencial en el contexto de la volatilidad es el modelo de volatilidad de suavizado exponencial simple, también conocido como modelo EWMA (Exponential Weighted Moving Average).
El modelo EWMA para la volatilidad se define de la siguiente manera:
\[ \sigma^2_t = \lambda \sigma^2_{t-1} + (1 - \lambda) r^2_{t-1} \]
donde:
\(\sigma^2_t\) es la varianza (volatilidad) estimada en el tiempo \(t\),
\(r_{t-1}\) es el rendimiento del activo en el tiempo \(t-1\),
\(\lambda\) es el parámetro de suavizamiento que determina la velocidad con la que decrecen los pesos de las observaciones más antiguas. Este parámetro está en el rango \(0 < \lambda < 1\).
El parámetro \(\lambda\) juega un papel crucial en el modelo, ya que controla el grado de suavizamiento. Un valor de \(\lambda\) cercano a 1 dará más peso a las observaciones pasadas, resultando en un suavizamiento más fuerte, mientras que un valor más bajo hace que el modelo sea más sensible a los cambios recientes en los rendimientos.
Ventajas:
Simplicidad: El modelo es fácil de entender e implementar.
Flexibilidad: El parámetro \(\lambda\) puede ajustarse para adaptarse a diferentes niveles de sensibilidad a los cambios recientes.
Desventajas:
Sensibilidad a \(\lambda\): La elección de \(\lambda\) puede tener un gran impacto en las estimaciones de volatilidad, y no hay un método estándar para elegir el mejor valor.
Desatención de estructuras temporales complejas: El modelo asume que la volatilidad es un proceso suave, lo cual puede no ser adecuado para series temporales financieras que presentan saltos o cambios abruptos en la volatilidad.
Para calcular la volatilidad mediante suavizamiento exponencial de la acción considerada en tu base de datos, primero necesito revisar los datos proporcionados. Luego, procederé a calcular la volatilidad utilizando el modelo EWMA (Exponential Weighted Moving Average). En cuanto al parámetro de suavizamiento \(\lambda\), una elección común en la industria financiera es usar 0.94 para datos diarios. Sin embargo, el valor óptimo puede variar dependiendo de la acción específica y el horizonte temporal de interés.
Se ha calculado la volatilidad diaria de la acción utilizando el modelo EWMA con un parámetro de suavizamiento \(\lambda = 0.94\). Los últimos valores de la serie muestran los rendimientos diarios y la volatilidad estimada según este modelo.
Por ejemplo, en las últimas fechas disponibles en la base de datos, la volatilidad estimada ha fluctuado, reflejando los cambios en los rendimientos diarios de la acción. El valor de la volatilidad EWMA se ajusta en función de estos rendimientos, proporcionando una medida dinámica de la volatilidad que tiene en cuenta tanto la información más reciente como la histórica, con un mayor énfasis en la primera.
Los modelos ARCH (Autoregressive Conditional Heteroskedasticity) y GARCH (Generalized Autoregressive Conditional Heteroskedasticity) son fundamentales en el análisis de series temporales financieras, especialmente cuando se trata de modelar la volatilidad de los retornos de activos. Estos modelos capturan la variabilidad en la volatilidad a lo largo del tiempo, lo cual es una característica común en los datos financieros, donde períodos de alta volatilidad tienden a ser seguidos por períodos de alta volatilidad, y lo mismo con los períodos de baja volatilidad.
Los modelos ARCH (Autoregressive Conditional Heteroskedasticity) de orden \(p\), conocidos como ARCH(p), son una clase de modelos estadísticos que se utilizan para modelar y predecir la varianza condicional (heteroscedasticidad) en series temporales financieras. Este enfoque es particularmente útil para entender y prever la volatilidad en los mercados financieros, donde la volatilidad tiende a agruparse en períodos de alta y baja volatilidad. La característica distintiva de los modelos ARCH es que permiten que la varianza de un período dependa de las magnitudes de los errores (innovaciones) en períodos anteriores.
En un modelo ARCH(p), la ecuación para la serie temporal puede ser expresada generalmente como sigue:
\[ y_t = \mu + \epsilon_t \]
donde:
\(y_t\) es el valor de la serie en el tiempo \(t\),
\(\mu\) es la media de la serie (a menudo asumida como constante),
\(\epsilon_t\) es el término de error o innovación en el tiempo \(t\), el cual es condicionalmente heteroscedástico.
La novedad del modelo ARCH se encuentra en cómo se modela la varianza de los términos de error \(\epsilon_t\), que se define como:
\[ \epsilon_t = \sigma_t z_t \]
donde:
\(z_t\) es un término de choque, típicamente asumido como distribuido normalmente con media cero y varianza unitaria, es decir, \(z_t \sim N(0,1)\),
\(\sigma_t^2\) es la varianza condicional del término de error, modelada como una función autoregresiva de orden \(p\) de los errores cuadrados pasados:
\[ \sigma_t^2 = \alpha_0 + \alpha_1 \epsilon_{t-1}^2 + \alpha_2 \epsilon_{t-2}^2 + \dots + \alpha_p \epsilon_{t-p}^2 \]
donde:
\(\alpha_0 > 0\) asegura que la varianza condicional sea positiva,
\(\alpha_i \geq 0\) para \(i = 1, 2, ..., p\) para garantizar que la varianza condicional también sea positiva,
\(p\) es el orden del modelo ARCH, indicando cuántos términos pasados de los errores cuadrados se utilizan para modelar la varianza actual.
La interpretación clave de un modelo ARCH(p) es que proporciona un mecanismo para que la volatilidad en un período sea influenciada por la magnitud de los errores en períodos anteriores. En contextos financieros, esto captura la idea de que grandes cambios en los precios (ya sean al alza o a la baja) tienden a ser seguidos por periodos de alta volatilidad, ya que los mercados reaccionan y se ajustan a la nueva información.
La estimación de los parámetros del modelo (\(\mu\), \(\alpha_0\), \(\alpha_1\), …, \(\alpha_p\)) se realiza comúnmente mediante máxima verosimilitud. Una vez estimado el modelo, es crucial realizar diagnósticos para verificar la adecuación del modelo, lo que incluye examinar los residuos para asegurarse de que no haya autocorrelación (indicando que toda la autocorrelación en la varianza ha sido capturada por el modelo) y que se ajusten a la hipótesis de homoscedasticidad condicional.
Los modelos ARCH(p) son ampliamente utilizados en el análisis financiero para:
Modelar y predecir la volatilidad de activos financieros.
Gestionar el riesgo financiero, evaluando la variabilidad de los retornos de las inversiones.
Valorar instrumentos financieros derivados, donde la volatilidad juega un papel crucial en la determinación de precios.
En la práctica, aunque los modelos ARCH proporcionan un marco poderoso para modelar la volatilidad, a menudo se encuentran que las extensiones como los modelos GARCH son más eficaces para capturar la persistencia de la volatilidad en los datos financieros, lo que lleva a su uso preferente en muchas aplicaciones financieras.
from arch import arch_model
s = 1 # Puedes cambiar este valor al orden deseado
modelo_arch_s = arch_model(data['Rendimientos'], vol='Arch', p=s)
resultado_arch_s = modelo_arch_s.fit(update_freq=5)
## Iteration: 5, Func. Count: 35, Neg. LLF: -652.9028684831833
## Optimization terminated successfully (Exit mode 0)
## Current function value: -652.9028684831833
## Iterations: 5
## Function evaluations: 35
## Gradient evaluations: 5
print(resultado_arch_s.summary())
## Constant Mean - ARCH Model Results
## ==============================================================================
## Dep. Variable: Rendimientos R-squared: 0.000
## Mean Model: Constant Mean Adj. R-squared: 0.000
## Vol Model: ARCH Log-Likelihood: 652.903
## Distribution: Normal AIC: -1299.81
## Method: Maximum Likelihood BIC: -1289.29
## No. Observations: 246
## Date: Fri, Aug 16 2024 Df Residuals: 245
## Time: 19:19:48 Df Model: 1
## Mean Model
## ==============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ------------------------------------------------------------------------------
## mu -1.2078e-03 1.075e-03 -1.124 0.261 [-3.314e-03,8.987e-04]
## Volatility Model
## ============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ----------------------------------------------------------------------------
## omega 2.4987e-04 3.477e-05 7.187 6.622e-13 [1.817e-04,3.180e-04]
## alpha[1] 0.1638 0.122 1.344 0.179 [-7.506e-02, 0.403]
## ============================================================================
##
## Covariance estimator: robust
mu (Constant Mean): El coeficiente estimado para la
media constante es aproximadamente -0.0012078, pero su p-valor es 0.261,
lo que indica que no es estadísticamente significativo al nivel
convencional (p < 0.05). Esto sugiere que la media constante de la
serie de rendimientos no es significativamente diferente de cero.omega (ω): El parámetro omega es alrededor de
0.00024978 y su p-valor es extremadamente bajo (p < 0.001), lo que
implica que es estadísticamente significativo. Este término representa
la varianza de largo plazo o varianza incondicional de los
rendimientos.alpha[1] (α[1]): El coeficiente de alpha(1) es
aproximadamente 0.1638 y su p-valor es 0.179, lo cual no es
suficientemente bajo para considerarlo estadísticamente significativo al
nivel de 0.05. Este parámetro mide el efecto de la innovación pasada (es
decir, el término de error al cuadrado del periodo anterior) sobre la
varianza actual. El hecho de que no sea significativo podría sugerir que
el modelo ARCH(1) no captura completamente la dinámica de la volatilidad
de la serie de tiempo.mu no es significativamente distinto de
cero, indicando que la media constante de la serie de rendimientos no
aporta significativamente al modelo.alpha[1], que es crítico en un modelo ARCH
para medir el impacto de los rendimientos pasados en la volatilidad
futura, no es estadísticamente significativo (p-valor de 0.179, mayor
que el umbral convencional de 0.05).Un modelo es considerado adecuado cuando los parámetros son
significativos y capturan bien la dinámica de los datos. En este caso,
dado que el parámetro alpha[1] no es significativo, no hay
evidencia suficiente para afirmar que la volatilidad pasada afecta la
volatilidad presente de manera significativa en la serie de tiempo
analizada. Esto podría sugerir que el modelo ARCH(1) no es el mejor para
modelar la volatilidad de esta serie de datos particular.
Además, la efectividad de un modelo ARCH también se evalúa a través de diagnósticos adicionales, como pruebas de autocorrelación de los residuos y pruebas de heterocedasticidad condicional (como la prueba de Engle’s ARCH test). Si los residuos del modelo muestran autocorrelación o hay evidencia de heterocedasticidad residual, esto indicaría que el modelo ARCH(1) no está capturando toda la dinámica de la volatilidad y que un modelo más complejo podría ser necesario.
## Iteration: 5, Func. Count: 38, Neg. LLF: -652.7027277400297
## Optimization terminated successfully (Exit mode 0)
## Current function value: -653.6706088706959
## Iterations: 8
## Function evaluations: 54
## Gradient evaluations: 8
## Constant Mean - ARCH Model Results
## ==============================================================================
## Dep. Variable: Rendimientos R-squared: 0.000
## Mean Model: Constant Mean Adj. R-squared: 0.000
## Vol Model: ARCH Log-Likelihood: 653.671
## Distribution: Normal AIC: -1299.34
## Method: Maximum Likelihood BIC: -1285.32
## No. Observations: 246
## Date: Fri, Aug 16 2024 Df Residuals: 245
## Time: 19:19:49 Df Model: 1
## Mean Model
## ==============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ------------------------------------------------------------------------------
## mu -9.7265e-04 1.030e-03 -0.945 0.345 [-2.991e-03,1.045e-03]
## Volatility Model
## ============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ----------------------------------------------------------------------------
## omega 2.2720e-04 4.002e-05 5.677 1.373e-08 [1.488e-04,3.056e-04]
## alpha[1] 0.1430 9.415e-02 1.519 0.129 [-4.153e-02, 0.328]
## alpha[2] 0.1006 0.144 0.697 0.486 [ -0.182, 0.383]
## ============================================================================
##
## Covariance estimator: robust
## Iteration: 5, Func. Count: 44, Neg. LLF: -651.9061679409996
## Optimization terminated successfully (Exit mode 0)
## Current function value: -655.8444253444942
## Iterations: 9
## Function evaluations: 70
## Gradient evaluations: 9
## Constant Mean - ARCH Model Results
## ==============================================================================
## Dep. Variable: Rendimientos R-squared: 0.000
## Mean Model: Constant Mean Adj. R-squared: 0.000
## Vol Model: ARCH Log-Likelihood: 655.844
## Distribution: Normal AIC: -1301.69
## Method: Maximum Likelihood BIC: -1284.16
## No. Observations: 246
## Date: Fri, Aug 16 2024 Df Residuals: 245
## Time: 19:19:50 Df Model: 1
## Mean Model
## ==============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ------------------------------------------------------------------------------
## mu -9.3456e-04 9.739e-04 -0.960 0.337 [-2.843e-03,9.742e-04]
## Volatility Model
## ============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ----------------------------------------------------------------------------
## omega 1.7853e-04 3.966e-05 4.502 6.740e-06 [1.008e-04,2.563e-04]
## alpha[1] 0.1126 7.666e-02 1.469 0.142 [-3.761e-02, 0.263]
## alpha[2] 0.1049 0.145 0.725 0.469 [ -0.179, 0.389]
## alpha[3] 0.2190 0.172 1.275 0.202 [ -0.118, 0.556]
## ============================================================================
##
## Covariance estimator: robust
Los modelos GARCH (Generalized Autoregressive Conditional Heteroskedasticity) son una extensión de los modelos ARCH (Autoregressive Conditional Heteroskedasticity) y son esenciales para modelar la volatilidad de series temporales, especialmente en el contexto financiero. Los modelos GARCH son particularmente útiles para capturar la agrupación de volatilidad, un fenómeno donde períodos de alta volatilidad son seguidos por períodos de alta volatilidad, y lo mismo para períodos de baja volatilidad. La capacidad de modelar esta característica es crucial para la gestión del riesgo financiero y la valoración de derivados, entre otras aplicaciones.
Un modelo GARCH(p, q) se define por dos parámetros enteros, \(p\) y \(q\), donde \(p\) es el orden de los componentes GARCH (que capturan la persistencia de la volatilidad pasada en la volatilidad actual) y \(q\) es el orden de los componentes ARCH (que capturan el efecto de los choques de información pasada en la volatilidad actual).
La especificación básica de un modelo GARCH(p, q) para una serie temporal \(y_t\) es la siguiente:
Ecuación de Media: La ecuación de media describe el comportamiento esperado de la variable de interés, \(y_t\), a menudo asumiendo que \(y_t\) sigue un proceso autorregresivo (AR), de media móvil (MA), o una combinación de ambos (ARMA). Por simplicidad, podemos asumir:
\[ y_t = \mu + \epsilon_t \]
donde \(\mu\) es la media de \(y_t\) y \(\epsilon_t\) es el término de error o innovación en el tiempo \(t\), que es condicionalmente heterocedástico.
Ecuación de Varianza: La ecuación de varianza es donde los modelos GARCH se distinguen, especificando cómo la varianza condicional de los errores (\(\sigma_t^2\)) evoluciona a lo largo del tiempo: \[ \sigma_t^2 = \alpha_0 + \sum_{i=1}^{q} \alpha_i \epsilon_{t-i}^2 + \sum_{j=1}^{p} \beta_j \sigma_{t-j}^2 \] Aquí, \(\sigma_t^2\) es la varianza condicional del término de error en el tiempo \(t\), \(\alpha_0\) es un término constante, \(\alpha_i\) son los coeficientes que miden el impacto de los choques de información pasada sobre la volatilidad actual (componentes ARCH), y \(\beta_j\) son los coeficientes que miden el impacto de la volatilidad pasada en la volatilidad actual (componentes GARCH).
\(\alpha_0\): Representa el nivel base de la volatilidad cuando no hay información pasada. Debe ser positivo para asegurar que la varianza condicional sea positiva.
\(\alpha_i\): Mide el efecto directo de los choques pasados en la volatilidad actual. Valores mayores indican que eventos recientes tienen un impacto significativo en la volatilidad actual.
\(\beta_j\): Mide la persistencia de la volatilidad a lo largo del tiempo. Valores cercanos a 1 indican una alta persistencia, significando que la volatilidad tarda en disiparse después de un choque.
Agrupación de Volatilidad: Los modelos GARCH capturan efectivamente la agrupación de volatilidad observada en muchas series temporales financieras.
Predicción de Volatilidad: Son ampliamente usados para predecir la volatilidad futura, lo cual es crucial para la valoración de opciones y otros instrumentos financieros, así como para la gestión de riesgos.
Análisis de la Persistencia de la Volatilidad: La suma de los coeficientes \(\alpha_i\) y \(\beta_j\) proporciona una medida de la persistencia de la volatilidad. Una suma cercana a 1 indica que la volatilidad es altamente persistente.
modelo_garch_1_1 = arch_model(data['Rendimientos'], vol='Garch', p=1, q=1)
resultado_garch_1_1 = modelo_garch_1_1.fit(update_freq=5)
## Iteration: 5, Func. Count: 43, Neg. LLF: -467.4796947239611
## Iteration: 10, Func. Count: 73, Neg. LLF: -657.099049290528
## Optimization terminated successfully (Exit mode 0)
## Current function value: -657.0991068821281
## Iterations: 12
## Function evaluations: 89
## Gradient evaluations: 12
print(resultado_garch_1_1.summary())
## Constant Mean - GARCH Model Results
## ==============================================================================
## Dep. Variable: Rendimientos R-squared: 0.000
## Mean Model: Constant Mean Adj. R-squared: 0.000
## Vol Model: GARCH Log-Likelihood: 657.099
## Distribution: Normal AIC: -1306.20
## Method: Maximum Likelihood BIC: -1292.18
## No. Observations: 246
## Date: Fri, Aug 16 2024 Df Residuals: 245
## Time: 19:19:51 Df Model: 1
## Mean Model
## ==============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ------------------------------------------------------------------------------
## mu -7.2823e-04 9.914e-04 -0.735 0.463 [-2.671e-03,1.215e-03]
## Volatility Model
## ============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ----------------------------------------------------------------------------
## omega 2.0619e-05 1.339e-06 15.394 1.804e-53 [1.799e-05,2.324e-05]
## alpha[1] 0.0756 5.487e-02 1.377 0.168 [-3.196e-02, 0.183]
## beta[1] 0.8576 4.302e-02 19.935 2.040e-88 [ 0.773, 0.942]
## ============================================================================
##
## Covariance estimator: robust
## Iteration: 5, Func. Count: 45, Neg. LLF: -656.583672589523
## Optimization terminated successfully (Exit mode 0)
## Current function value: -657.1149558140071
## Iterations: 9
## Function evaluations: 83
## Gradient evaluations: 9
## Constant Mean - GARCH Model Results
## ==============================================================================
## Dep. Variable: Rendimientos R-squared: 0.000
## Mean Model: Constant Mean Adj. R-squared: 0.000
## Vol Model: GARCH Log-Likelihood: 657.115
## Distribution: Normal AIC: -1304.23
## Method: Maximum Likelihood BIC: -1286.70
## No. Observations: 246
## Date: Fri, Aug 16 2024 Df Residuals: 245
## Time: 19:19:51 Df Model: 1
## Mean Model
## ==============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ------------------------------------------------------------------------------
## mu -7.6215e-04 1.001e-03 -0.762 0.446 [-2.724e-03,1.199e-03]
## Volatility Model
## ============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ----------------------------------------------------------------------------
## omega 2.5834e-05 3.064e-06 8.432 3.388e-17 [1.983e-05,3.184e-05]
## alpha[1] 0.0963 6.618e-02 1.455 0.146 [-3.342e-02, 0.226]
## beta[1] 0.3256 1.040 0.313 0.754 [ -1.713, 2.364]
## beta[2] 0.4949 1.034 0.479 0.632 [ -1.532, 2.521]
## ============================================================================
##
## Covariance estimator: robust
## Iteration: 5, Func. Count: 46, Neg. LLF: -650.7611803844136
## Optimization terminated successfully (Exit mode 0)
## Current function value: -657.0991271368706
## Iterations: 9
## Function evaluations: 84
## Gradient evaluations: 9
## Constant Mean - GARCH Model Results
## ==============================================================================
## Dep. Variable: Rendimientos R-squared: 0.000
## Mean Model: Constant Mean Adj. R-squared: 0.000
## Vol Model: GARCH Log-Likelihood: 657.099
## Distribution: Normal AIC: -1304.20
## Method: Maximum Likelihood BIC: -1286.67
## No. Observations: 246
## Date: Fri, Aug 16 2024 Df Residuals: 245
## Time: 19:19:53 Df Model: 1
## Mean Model
## ==============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ------------------------------------------------------------------------------
## mu -7.2800e-04 9.871e-04 -0.738 0.461 [-2.663e-03,1.207e-03]
## Volatility Model
## ============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ----------------------------------------------------------------------------
## omega 2.0628e-05 1.576e-06 13.092 3.654e-39 [1.754e-05,2.372e-05]
## alpha[1] 0.0756 7.199e-02 1.050 0.294 [-6.551e-02, 0.217]
## alpha[2] 1.2441e-15 9.965e-02 1.248e-14 1.000 [ -0.195, 0.195]
## beta[1] 0.8575 5.608e-02 15.289 8.990e-53 [ 0.748, 0.967]
## ============================================================================
##
## Covariance estimator: robust
## Iteration: 5, Func. Count: 50, Neg. LLF: -646.3016735271303
## Iteration: 10, Func. Count: 88, Neg. LLF: -657.1295351238626
## Optimization terminated successfully (Exit mode 0)
## Current function value: -657.1354201084432
## Iterations: 13
## Function evaluations: 120
## Gradient evaluations: 13
## Constant Mean - GARCH Model Results
## ==============================================================================
## Dep. Variable: Rendimientos R-squared: 0.000
## Mean Model: Constant Mean Adj. R-squared: 0.000
## Vol Model: GARCH Log-Likelihood: 657.135
## Distribution: Normal AIC: -1302.27
## Method: Maximum Likelihood BIC: -1281.24
## No. Observations: 246
## Date: Fri, Aug 16 2024 Df Residuals: 245
## Time: 19:19:54 Df Model: 1
## Mean Model
## ==============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ------------------------------------------------------------------------------
## mu -7.4812e-04 9.874e-04 -0.758 0.449 [-2.683e-03,1.187e-03]
## Volatility Model
## ============================================================================
## coef std err t P>|t| 95.0% Conf. Int.
## ----------------------------------------------------------------------------
## omega 2.9825e-05 4.288e-06 6.956 3.512e-12 [2.142e-05,3.823e-05]
## alpha[1] 0.0926 7.848e-02 1.180 0.238 [-6.123e-02, 0.246]
## alpha[2] 0.0186 9.998e-02 0.186 0.852 [ -0.177, 0.215]
## beta[1] 0.2369 0.428 0.553 0.580 [ -0.602, 1.076]
## beta[2] 0.5555 0.437 1.271 0.204 [ -0.301, 1.412]
## ============================================================================
##
## Covariance estimator: robust